package fr.afcepf.al22.projet1.dao.implementation;

import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.transaction.annotation.Transactional;

import fr.afcepf.al22.projet1.dao.interfaces.IDaoLigneCommande;
import fr.afcepf.al22.projet1.entity.Commande;
import fr.afcepf.al22.projet1.entity.LigneCommande;
@Transactional
public class DaoLigneCommandeImpl implements IDaoLigneCommande {
	private Logger log=Logger.getLogger(this.getClass());
	private HibernateTemplate ht;
	public void setSessionFactory(SessionFactory sf){
		ht=new HibernateTemplate(sf);
	}
	@Override
	public LigneCommande ajouterLigneDeCommande(LigneCommande uneLigne) {
		log.info("Dans DAOLigneCommande ajouterLigneCommande");
		ht.save(uneLigne);
		return uneLigne;
	}

	@Override
	public LigneCommande modifierLigneDeCommande(LigneCommande uneLigne) {
		log.info("Dans DAOLigneCommande modifierLigneCommande");
		ht.update(uneLigne);
		return uneLigne;
	}

	@Override
	public LigneCommande supprimerLigneDeCommande(LigneCommande uneLigne) {
		log.info("Dans DAOLigneCommande supprimerLigneCommande");
		ht.delete(uneLigne);
		return uneLigne;
	}

	@Override
	public List<LigneCommande> getLigneCommandeByCommande(Commande uneCommande) {
		log.info("Dans DAOLigneCommande getLigneCommandeByCommande");
		@SuppressWarnings("unchecked")
		List<LigneCommande> liste=(List<LigneCommande>) ht.findByNamedParam("SELECT lc FROM LigneCommande lc WHERE lc.commande.idCommande=:idCommande", "idCommande", uneCommande.getIdCommande());
		return liste;
	}

}
